home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / PInterfaces / HyperXCmd.p < prev    next >
Text File  |  1996-05-01  |  12KB  |  287 lines

  1. {
  2.      File:        HyperXCmd.p
  3.  
  4.      Contains:    Interfaces for HyperCard XCMD's
  5.  
  6.      Version:    Technology:    HyperCard 2.3
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT HyperXCmd;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __HYPERXCMD__}
  28. {$SETC __HYPERXCMD__ := 1}
  29.  
  30. {$I+}
  31. {$SETC HyperXCmdIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __TYPES__}
  35. {$I Types.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __EVENTS__}
  38. {$I Events.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __TEXTEDIT__}
  41. {$I TextEdit.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __MENUS__}
  44. {$I Menus.p}
  45. {$ENDC}
  46. {$IFC UNDEFINED __STANDARDFILE__}
  47. {$I StandardFile.p}
  48. {$ENDC}
  49.  
  50. {$PUSH}
  51. {$ALIGN MAC68K}
  52. {$LibExport+}
  53.  
  54. {$IFC FOR_SYSTEM7_AND_SYSTEM8_DEPRECATED }
  55. {  result codes  }
  56.  
  57. CONST
  58.     xresSucc                    = 0;
  59.     xresFail                    = 1;
  60.     xresNotImp                    = 2;
  61.  
  62. {  XCMDBlock constants for event.what...  }
  63.     xOpenEvt                    = 1000;                            {  the first event after you are created  }
  64.     xCloseEvt                    = 1001;                            {  your window is being forced close (Quit?)  }
  65.     xGiveUpEditEvt                = 1002;                            {  you are losing Edit...  }
  66.     xGiveUpSoundEvt                = 1003;                            {  you are losing the sound channel...  }
  67.     xHidePalettesEvt            = 1004;                            {  someone called HideHCPalettes  }
  68.     xShowPalettesEvt            = 1005;                            {  someone called ShowHCPalettes  }
  69.     xEditUndo                    = 1100;                            {  Edit----Undo  }
  70.     xEditCut                    = 1102;                            {  Edit----Cut  }
  71.     xEditCopy                    = 1103;                            {  Edit----Copy  }
  72.     xEditPaste                    = 1104;                            {  Edit----Paste  }
  73.     xEditClear                    = 1105;                            {  Edit----Clear  }
  74.     xSendEvt                    = 1200;                            {  script has sent you a message (text)  }
  75.     xSetPropEvt                    = 1201;                            {  set a window property  }
  76.     xGetPropEvt                    = 1202;                            {  get a window property  }
  77.     xCursorWithin                = 1300;                            {  cursor is within the window  }
  78.     xMenuEvt                    = 1400;                            {  user has selected an item in your menu  }
  79.     xMBarClickedEvt                = 1401;                            {  a menu is about to be shown--update if needed  }
  80.     xShowWatchInfoEvt            = 1501;                            {  for variable and message watchers  }
  81.     xScriptErrorEvt                = 1502;                            {  place the insertion point  }
  82.     xDebugErrorEvt                = 1503;                            {  user clicked "Debug" at a complaint  }
  83.     xDebugStepEvt                = 1504;                            {  hilite the line  }
  84.     xDebugTraceEvt                = 1505;                            {  same as step but tracing  }
  85.     xDebugFinishedEvt            = 1506;                            {  script ended  }
  86.  
  87.     paletteProc                    = 2048;                            {  Windoid with grow box  }
  88.     palNoGrowProc                = 2052;                            {  standard Windoid defproc  }
  89.     palZoomProc                    = 2056;                            {  Windoid with zoom and grow  }
  90.     palZoomNoGrow                = 2060;                            {  Windoid with zoom and no grow  }
  91.     hasZoom                        = 8;
  92.     hasTallTBar                    = 2;
  93.     toggleHilite                = 1;
  94.  
  95. {  paramCount is set to these constants when first calling special XThings  }
  96.     xMessageWatcherID            = -2;
  97.     xVariableWatcherID            = -3;
  98.     xScriptEditorID                = -4;
  99.     xDebuggerID                    = -5;
  100.  
  101. {  XTalkObjectPtr->objectKind values  }
  102.     stackObj                    = 1;
  103.     bkgndObj                    = 2;
  104.     cardObj                        = 3;
  105.     fieldObj                    = 4;
  106.     buttonObj                    = 5;
  107.  
  108. {  selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText)  }
  109.     errorDlgID                    = 1;                            {  1:OK (default)  }
  110.     confirmDlgID                = 2;                            {  1:OK (default) and 2:Cancel  }
  111.     confirmDelDlgID                = 3;                            {  1:Cancel (default) and 2:Delete  }
  112.     yesNoCancelDlgID            = 4;                            {  1:Yes (default), 2:Cancel, and 3:No  }
  113.  
  114. {  type definitions  }
  115.  
  116. TYPE
  117.     XCmdBlockPtr = ^XCmdBlock;
  118.     XCmdBlock = RECORD
  119.         paramCount:                INTEGER;                                {  If = -1 then new use for XWindoids  }
  120.         params:                    ARRAY [1..16] OF Handle;
  121.         returnValue:            Handle;
  122.         passFlag:                BOOLEAN;
  123.         filler1:                SignedByte;
  124.         entryPoint:                UniversalProcPtr;                        {  to call back to HyperCard  }
  125.         request:                INTEGER;
  126.         result:                    INTEGER;
  127.         inArgs:                    ARRAY [1..8] OF LONGINT;
  128.         outArgs:                ARRAY [1..4] OF LONGINT;
  129.     END;
  130.  
  131.     XCmdPtr                                = ^XCmdBlock;
  132.     XWEventInfoPtr = ^XWEventInfo;
  133.     XWEventInfo = RECORD
  134.         event:                    EventRecord;
  135.         eventWindow:            WindowPtr;
  136.         eventParams:            ARRAY [1..9] OF LONGINT;
  137.         eventResult:            Handle;
  138.     END;
  139.  
  140.     XTalkObjectPtr = ^XTalkObject;
  141.     XTalkObject = RECORD
  142.         objectKind:                INTEGER;                                {  stack, bkgnd, card, field, or button  }
  143.         stackNum:                LONGINT;                                {  reference number of the source stack  }
  144.         bkgndID:                LONGINT;
  145.         cardID:                    LONGINT;
  146.         buttonID:                LONGINT;
  147.         fieldID:                LONGINT;
  148.     END;
  149.  
  150. {  maximum number of checkpoints in a script  }
  151.  
  152. CONST
  153.     maxCachedChecks                = 16;
  154.  
  155.  
  156. TYPE
  157.     CheckPtsPtr = ^CheckPts;
  158.     CheckPts = RECORD
  159.         checks:                    ARRAY [1..16] OF INTEGER;
  160.     END;
  161.  
  162.     CheckPtPtr                            = ^CheckPts;
  163.     CheckPtHandle                        = ^CheckPtPtr;
  164. {
  165.         HyperTalk Utilities  
  166. }
  167. FUNCTION EvalExpr(paramPtr: XCmdPtr; expr: Str255): Handle;
  168. PROCEDURE SendCardMessage(paramPtr: XCmdPtr; msg: Str255);
  169. PROCEDURE SendHCMessage(paramPtr: XCmdPtr; msg: Str255);
  170. PROCEDURE RunHandler(paramPtr: XCmdPtr; handler: Handle);
  171. {
  172.         Memory Utilities  
  173. }
  174. FUNCTION GetGlobal(paramPtr: XCmdPtr; globName: Str255): Handle;
  175. PROCEDURE SetGlobal(paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
  176. PROCEDURE ZeroBytes(paramPtr: XCmdPtr; dstPtr: UNIV Ptr; longCount: LONGINT);
  177. {
  178.         String Utilities  
  179. }
  180. PROCEDURE ScanToReturn(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  181. PROCEDURE ScanToZero(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  182. FUNCTION StringEqual(paramPtr: XCmdPtr; str1: Str255; str2: Str255): BOOLEAN;
  183. FUNCTION StringLength(paramPtr: XCmdPtr; strPtr: UNIV Ptr): LONGINT;
  184. FUNCTION StringMatch(paramPtr: XCmdPtr; pattern: Str255; target: UNIV Ptr): Ptr;
  185. PROCEDURE ZeroTermHandle(paramPtr: XCmdPtr; hndl: Handle);
  186. {
  187.         String Conversions  
  188. }
  189. PROCEDURE BoolToStr(paramPtr: XCmdPtr; bool: BOOLEAN; VAR str: Str255);
  190. PROCEDURE Double_tToStr(paramPtr: XCmdPtr; num: double_t; VAR str: Str255);
  191. PROCEDURE LongToStr(paramPtr: XCmdPtr; posNum: LONGINT; VAR str: Str255);
  192. PROCEDURE NumToHex(paramPtr: XCmdPtr; num: LONGINT; nDigits: INTEGER; VAR str: Str255);
  193. PROCEDURE NumToStr(paramPtr: XCmdPtr; num: LONGINT; VAR str: Str255);
  194. FUNCTION PasToZero(paramPtr: XCmdPtr; str: Str255): Handle;
  195. PROCEDURE PointToStr(paramPtr: XCmdPtr; pt: Point; VAR str: Str255);
  196. PROCEDURE RectToStr(paramPtr: XCmdPtr; {CONST}VAR rct: Rect; VAR str: Str255);
  197. PROCEDURE ReturnToPas(paramPtr: XCmdPtr; zeroStr: UNIV Ptr; VAR pasStr: Str255);
  198. FUNCTION StrToBool(paramPtr: XCmdPtr; str: Str255): BOOLEAN;
  199. FUNCTION StrToDouble_t(paramPtr: XCmdPtr; str: Str255): double_t;
  200. FUNCTION StrToLong(paramPtr: XCmdPtr; str: Str255): LONGINT;
  201. FUNCTION StrToNum(paramPtr: XCmdPtr; str: Str255): LONGINT;
  202. PROCEDURE StrToPoint(paramPtr: XCmdPtr; str: Str255; VAR pt: Point);
  203. PROCEDURE StrToRect(paramPtr: XCmdPtr; str: Str255; VAR rct: Rect);
  204. PROCEDURE ZeroToPas(paramPtr: XCmdPtr; zeroStr: UNIV Ptr; VAR pasStr: Str255);
  205. {
  206.         Field Utilities  
  207. }
  208. FUNCTION GetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  209. FUNCTION GetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
  210. FUNCTION GetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  211. PROCEDURE SetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  212. PROCEDURE SetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
  213. PROCEDURE SetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  214. FUNCTION GetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldNum: INTEGER; fieldName: Str255): TEHandle;
  215. PROCEDURE SetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldNum: INTEGER; fieldName: Str255; fieldTE: TEHandle);
  216. {
  217.         Miscellaneous Utilities  
  218. }
  219. PROCEDURE BeginXSound(paramPtr: XCmdPtr; window: WindowPtr);
  220. PROCEDURE EndXSound(paramPtr: XCmdPtr);
  221. FUNCTION GetFilePath(paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: ConstSFTypeListPtr; askUser: BOOLEAN; VAR fileType: OSType; VAR fullName: Str255): BOOLEAN;
  222. PROCEDURE GetXResInfo(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER; VAR rType: ResType; VAR name: Str255);
  223. PROCEDURE Notify(paramPtr: XCmdPtr);
  224. PROCEDURE SendHCEvent(paramPtr: XCmdPtr; {CONST}VAR event: EventRecord);
  225. PROCEDURE SendWindowMessage(paramPtr: XCmdPtr; windPtr: WindowPtr; windowName: Str255; msg: Str255);
  226. FUNCTION FrontDocWindow(paramPtr: XCmdPtr): WindowPtr;
  227. FUNCTION StackNameToNum(paramPtr: XCmdPtr; stackName: Str255): LONGINT;
  228. FUNCTION ShowHCAlert(paramPtr: XCmdPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
  229. FUNCTION AbortInQueue(paramPtr: XCmdPtr): BOOLEAN;
  230. PROCEDURE FlushStackFile(paramPtr: XCmdPtr);
  231. {
  232.         Creating and Disposing XWindoids  
  233. }
  234. FUNCTION NewXWindow(paramPtr: XCmdPtr; {CONST}VAR boundsRect: Rect; title: Str255; visible: BOOLEAN; procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  235. FUNCTION GetNewXWindow(paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;
  236. PROCEDURE CloseXWindow(paramPtr: XCmdPtr; window: WindowPtr);
  237. {
  238.         XWindoid Utilities  
  239. }
  240. PROCEDURE HideHCPalettes(paramPtr: XCmdPtr);
  241. PROCEDURE ShowHCPalettes(paramPtr: XCmdPtr);
  242. PROCEDURE RegisterXWMenu(paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  243. PROCEDURE SetXWIdleTime(paramPtr: XCmdPtr; window: WindowPtr; interval: LONGINT);
  244. PROCEDURE XWHasInterruptCode(paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  245. PROCEDURE XWAlwaysMoveHigh(paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  246. PROCEDURE XWAllowReEntrancy(paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  247. {
  248.         Text Editing Utilities  
  249. }
  250. PROCEDURE BeginXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
  251. PROCEDURE EndXWEdit(paramPtr: XCmdPtr; window: WindowPtr);
  252. FUNCTION HCWordBreakProc(paramPtr: XCmdPtr): WordBreakUPP;
  253. PROCEDURE PrintTEHandle(paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  254. {
  255.         Script Editor support  
  256. }
  257. FUNCTION GetCheckPoints(paramPtr: XCmdPtr): CheckPtHandle;
  258. PROCEDURE SetCheckPoints(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  259. PROCEDURE FormatScript(paramPtr: XCmdPtr; scriptHndl: Handle; VAR insertionPoint: LONGINT; quickFormat: BOOLEAN);
  260. PROCEDURE SaveXWScript(paramPtr: XCmdPtr; scriptHndl: Handle);
  261. PROCEDURE GetObjectName(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; VAR objName: Str255);
  262. PROCEDURE GetObjectScript(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; VAR scriptHndl: Handle);
  263. PROCEDURE SetObjectScript(paramPtr: XCmdPtr; xObjPtr: XTalkObjectPtr; scriptHndl: Handle);
  264. {
  265.         Debugging Tools support  
  266. }
  267. PROCEDURE AbortScript(paramPtr: XCmdPtr);
  268. PROCEDURE GoScript(paramPtr: XCmdPtr);
  269. PROCEDURE StepScript(paramPtr: XCmdPtr; stepInto: BOOLEAN);
  270. PROCEDURE CountHandlers(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
  271. PROCEDURE GetHandlerInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Str255; VAR objectName: Str255; VAR varCount: INTEGER);
  272. PROCEDURE GetVarInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; VAR varName: Str255; VAR isGlobal: BOOLEAN; VAR varValue: Str255; varHndl: Handle);
  273. PROCEDURE SetVarValue(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER; varHndl: Handle);
  274. FUNCTION GetStackCrawl(paramPtr: XCmdPtr): Handle;
  275. PROCEDURE TraceScript(paramPtr: XCmdPtr; traceInto: BOOLEAN);
  276. {$ENDC}
  277. {$ALIGN RESET}
  278. {$POP}
  279.  
  280. {$SETC UsingIncludes := HyperXCmdIncludes}
  281.  
  282. {$ENDC} {__HYPERXCMD__}
  283.  
  284. {$IFC NOT UsingIncludes}
  285.  END.
  286. {$ENDC}
  287.